package es.gesfutbol.web;

import java.util.List;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.ui.ModelMap;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.multiaction.MultiActionController;

import es.gesfutbol.dao.IEquipDao;
import es.gesfutbol.dao.IJugadorDao;
import es.gesfutbol.domini.implementacio.Jugador;

public class JugadorsController extends MultiActionController{

	private IJugadorDao jugadorDao;
	
	private IEquipDao equipDao;

	public ModelAndView init(HttpServletRequest request,
			HttpServletResponse response) throws Exception {

		List<Jugador> jugadors = jugadorDao.findAll();
		Jugador jugador = new Jugador();

		ModelMap modelMap = new ModelMap();
		modelMap.addAttribute("llistatJugadors", jugadors);
		modelMap.addAttribute("jugador", jugador);
		return new ModelAndView("administracion/jugadors", modelMap);
	}
	
	public ModelAndView viewUpdate(HttpServletRequest request,
			HttpServletResponse response){
		
		List<Jugador> jugadors = jugadorDao.findAll();
		Jugador jugador = jugadorDao.findById(Long.parseLong(request.getParameter("idJugador")));

		ModelMap modelMap = new ModelMap();
		modelMap.addAttribute("llistatJugadors", jugadors);
		modelMap.addAttribute("jugador", jugador);
		return new ModelAndView("administracion/jugadors", modelMap);
	}
	
	public ModelAndView delete(HttpServletRequest request,
			HttpServletResponse response){
		
		//TODO: De moment no l'implementem, l'implementarem més 
		//endavant.
		return null;
	}

	public ModelAndView addOrUpdate(HttpServletRequest request,
			HttpServletResponse response, Jugador jugador){
		jugadorDao.saveOrUpdate(jugador);
		return new ModelAndView("redirect:init.htm");
		
	}
	
	public IJugadorDao getJugadorDao() {
		return jugadorDao;
	}

	public void setJugadorDao(IJugadorDao jugadorDao) {
		this.jugadorDao = jugadorDao;
	}

	public IEquipDao getEquipDao() {
		return equipDao;
	}

	public void setEquipDao(IEquipDao equipDao) {
		this.equipDao = equipDao;
	}	
}
